package dao.impl;

import java.util.List;

import hibernate.HibernateUtil;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

import dao.RodamientoDAO;
import dominio.Rodamiento;

public class RodamientoDAOImpl implements RodamientoDAO {
	
	private static RodamientoDAOImpl instancia = null;
	@SuppressWarnings("unused")
	private static SessionFactory sf = null;

	private RodamientoDAOImpl(){}
	
	public static RodamientoDAOImpl getInstancia(){
		if(instancia == null){
			sf = HibernateUtil.getSessionFactory();
			instancia = new RodamientoDAOImpl();
		} 
		return instancia;
	}
	
	
	public Rodamiento findByID(String id) {
		Rodamiento rodamiento = new Rodamiento();
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction tx= session.beginTransaction();
		session.load(rodamiento, id);
		tx.commit();
		session.close();
		return rodamiento;
	}

	@SuppressWarnings("unchecked")
	public List<Rodamiento> getAll() {
		List<Rodamiento> rodamientos;
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction tx= session.beginTransaction();
		rodamientos = session.createQuery("from Rodamiento").list();
		tx.commit();
		session.close();		
		return rodamientos;
	}

}
